#include "mainwindow.h"
#include <QApplication>
// 图形视图类提供了一个用于显示图形场景的内容的小部件
#include<QGraphicsView>
// 提供了一个用于管理大量二维图形项的界面
#include<QGraphicsScene>
#include<cmath>
#include"qcoloritem.h"
#include"qrobot.h"

class QMyGraphicsView:public QGraphicsView
{
public:
    // 使用基类的构造函数
    using QGraphicsView::QGraphicsView;
protected:
    // 重写resizeEvent方法，用于处理视图大小改变事件
    void resizeEvent(QResizeEvent *event)
    {

    };
};

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    // 创建一个QGraphicsScene类型对象，设置其范围为(-200,-200,200,200),大小为400
    QGraphicsScene scence(-200,-200,400,400);

    for(int i = 0;i < 10;++i)
    {
        // 创建ColorItem对象
        QColorItem* pItem = new QColorItem();
        // 设置ColorItem对象的位置在 (-150,150)之间
        pItem->setPos(std::sin((i*6.28)/10)*150,
                      std::cos((i*6.28)/10)*150);

        scence.addItem(pItem);

    }

    QRobot* pRobot = new QRobot();
    // 设置Robot对象变换，放大1.2倍
    pRobot->setTransform(QTransform::fromScale(1.2,1.2),true);
    pRobot->setPos(0,-20);
    scence.addItem(pRobot);

    QGraphicsView view(&scence);
    view.setRenderHint(QPainter::Antialiasing);
    // 设置视图更新模式
    view.setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate);
    view.setBackgroundBrush(QBrush(Qt::yellow));
    view.setWindowTitle("机器人");
    view.show();

    return a.exec();
}
